2024年01月19日
川俣晶の縁側ソフトウェア技術雑記 total 3785 count

M5StickCで.NET nanoframeworkを動かす・罠だらけで異様に苦労した

Written By: 川俣 晶連絡先

発端 §

 ラズパイ等の安い小型コンピュータで遊ぼうか思って最初はRaspberry Pi Pico Wを検討していたが、LEDぐらいしか出力デバイスがなく、最初から独自デバイスを追加するのもハードルが高いので、画面が付いている安くて小さなものということで、M5StickCを1つ買ってみた。

 1つだけ前提にあったのは普段使っていないデバイスを試すのに普段使っていない言語を使うのはイヤだということだ。だから、C#を必須とした。.NET nanoframeworkはM5StickCをサポートしているので、これで良いと考えた。

箱を開く §

 箱を開いても、充電されて届くわけではないのでUSBケーブルでPCと接続する。

 すると勝手にデモが起動する。

 LEDの点滅と加速度センサーの値らしいものを画面に表示する。

ファームウェアの更新 §

 いろいろ説明しているサイトは多くあるが、.NET nanoframeworkを入れるならたぶんいらない。あとでnanoffで入れれば良いと思う。

COMポートの番号 §

 M5StickCをUSBで接続した後で、デバイスマネージャを見るとCOMポートの番号を確認できる。(USB接続だがCOMポート扱いになる)

nanoffでフレームワークを入れる §

  • dotnet tool install -g nanoff

 で、nanoffをインストールする。.NET nanoframework用のファームの更新ツールだ。

 COMポートがCOM3で、デバイスがM5StickCなら以下のように入力する。

  • nanoff --platform esp32 --target M5StickC --serialport COM3 --update

 --platformに指定できるのはesp32, stm32, cc13x2, gg11のみである。--targetで指定できるデバイス名は、--listtargetsで一覧を取得できる。

Visual Studioの準備 §

  1. Visual Studio 2022を用意する
  2. 【拡張機能】→【Manage Extensions】からnanoframneworkを追加する
  3. .NET nanoframeworkのBlank Appのプロジェクトを新規作成する
  4. nugetの参照を最新にする
  5. nugetで M5StickCを検索して対応ライブラリを追加する
  6. このあたりからサンプルソースを持って来て、Program.csの中味を入れ換える
  7. 【表示】→【その他のウィンドウ】→【Device Explorer】で配置先のターゲットを指定する
  8. F5キーでビルド&実行
  9. デバッグメッセージはVisual Studioのデバッグウィンドウに見える

その他の注意 §

  • nugetで更新した後はフルビルドしないとターゲットが更新されないことがある
  • COMポートが占有されるため、Visual StudioがCOMポートを占有しているとnanoffがCOMポートを開けないことがある。Visual Studioを閉じてもロックされたままの場合がある。マシンの再起動で対処する

感想 §

nanoffのplatformとtargetの指定はネットの情報も混乱が見られて良く分からなかった。ページによってplatformを指定するものとtargetを指定するものがあった。そこはヤマカンで解決した。ヤマカンが当たって良かった。